From: Andrea Azzarone Date: Mon, 4 Mar 2019 16:14:22 +0000 (+0000) Subject: dnd: Only handle touch events in wayland X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~888^2^2~26 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=60ccdc2deb746c0d96b0268ee5034b65478ce779;p=gnome-shell.git dnd: Only handle touch events in wayland There are serveral issues around touch passive grab and touch/pointer doubly handling to use these on X11, so we stick to single-touch/pointer there. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1015 --- diff --git a/js/ui/dnd.js b/js/ui/dnd.js index 554e87773..614ea621d 100644 --- a/js/ui/dnd.js +++ b/js/ui/dnd.js @@ -125,6 +125,16 @@ var _Draggable = class _Draggable { } _onTouchEvent(actor, event) { + // We only handle touch events here on wayland. On X11 + // we do get emulated pointer events, which already works + // for single-touch cases. Besides, the X11 passive touch grab + // set up by Mutter will make us see first the touch events + // and later the pointer events, so it will look like two + // unrelated series of events, we want to avoid double handling + // in these cases. + if (!Meta.is_wayland_compositor()) + return Clutter.EVENT_PROPAGATE; + if (event.type() != Clutter.EventType.TOUCH_BEGIN || !global.display.is_pointer_emulating_sequence(event.get_event_sequence())) return Clutter.EVENT_PROPAGATE;